From: cl349@freefall.cl.cam.ac.uk Date: Wed, 6 Oct 2004 23:53:43 +0000 (+0000) Subject: bitkeeper revision 1.1159.1.212 (416485874bmgh8xNVGGY3ZNzyzd9QQ) X-Git-Tag: archive/raspbian/4.8.0-1+rpi1~1^2~17400^2~539 X-Git-Url: https://dgit.raspbian.org/%22http://www.example.com/cgi/%22/%22http:/www.example.com/cgi/%22?a=commitdiff_plain;h=3cb28ec77d8b080cfd1787ff1d4f593d12e7c621;p=xen.git bitkeeper revision 1.1159.1.212 (416485874bmgh8xNVGGY3ZNzyzd9QQ) Make pmd_present test correct in writable pagetables mode. --- diff --git a/linux-2.6.8.1-xen-sparse/include/asm-xen/asm-i386/pgtable.h b/linux-2.6.8.1-xen-sparse/include/asm-xen/asm-i386/pgtable.h index 20dda455dc..3c722ee573 100644 --- a/linux-2.6.8.1-xen-sparse/include/asm-xen/asm-i386/pgtable.h +++ b/linux-2.6.8.1-xen-sparse/include/asm-xen/asm-i386/pgtable.h @@ -211,7 +211,9 @@ extern unsigned long pg0[]; #define pte_clear(xp) do { set_pte(xp, __pte(0)); } while (0) #define pmd_none(x) (!pmd_val(x)) -#define pmd_present(x) (pmd_val(x) & _PAGE_PRESENT) +/* pmd_present doesn't just test the _PAGE_PRESENT bit since wr.p.t. + can temporarily clear it. */ +#define pmd_present(x) (pmd_val(x)) /* pmd_clear below */ #define pmd_bad(x) ((pmd_val(x) & (~PAGE_MASK & ~_PAGE_USER & ~_PAGE_PRESENT)) != (_KERNPG_TABLE & ~_PAGE_PRESENT))